Method of Displaying Contact Information

ABSTRACT

A method of displaying contact method on a mobile device includes storing a plurality of contact records on a mobile device. At least one record contains information corresponding to the geographic location of at least one of the contacts. The geographic location of the mobile device is determined and compared with the geographic location of the contacts stored on the mobile device. The contacts are arranged based on the geographic proximity of the contact to the mobile device.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is related to co-pending U.S. patent application No.______, entitled Method of Distributing Contact and Calendar Records,filed Jan. 19, 2007, Attorney Docket No. TPL-011-1; U.S. patentapplication No. ______, entitled Method of Distributing Contact andCalendar Records, filed Jan. 19, 2007, Attorney Docket No. TPL-011-2;U.S. patent application No. ______, entitled Method of DisplayingContact Information, filed Jan. 19, 2007, Attorney Docket No. TPL-011-4;U.S. patent application No. ______, entitled Method of DistributingContact Information to Merchant Websites, filed Jan. 19, 2007, AttorneyDocket No. TPL-011-5; and U.S. patent application No. ______, entitledMethod of Updating Contact Information on Merchant Websites, filed Jan.19, 2007, Attorney Docket No. TPL-011-6, the entire disclosures of whichare incorporated herein by reference.

BRIEF DESCRIPTION OF THE DRAWINGS

The following detailed description will be better understood when readin conjunction with the appended drawings, in which there is shown oneor more of the multiple embodiments of the present invention. It shouldbe understood, however, that the various embodiments of the presentinvention are not limited to the precise arrangements andinstrumentalities shown in the drawings.

In the Drawings:

FIG. 1 is a system diagram of one embodiment of a contact and calendarrecord delivery system;

FIG. 2 is a system diagram of one embodiment of a contact and calendarrecord delivery system;

FIG. 3A is a use case diagram of an information management module inaccordance with the contact and calendar record delivery system of FIG.1;

FIG. 3B is a use case diagram of a component device in accordance withthe contact and calendar record delivery system of FIG. 1;

FIG. 4 is an activity diagram of an embodiment of the contact andcalendar record delivery system of FIG. 1;

FIG. 5 is an activity diagram of an embodiment of the contact andcalendar record delivery system of FIG. 1;

FIG. 6 is a table showing an example of list directive data;

FIG. 7A is a table showing an example of a contact record with groupdirective field data;

FIG. 7B is a table showing an example of group directive data;

FIG. 8A is a table showing an example of a contact record with two typesof directive data;

FIG. 8B is a table showing an example of group directive data;

FIG. 8C is a table showing an example of geographic directive data;

FIG. 9A is a table showing an example of a contact record with two typesof directive data;

FIG. 9B is a table showing an example of group directive data;

FIG. 9C is a table showing an example of time of day directive data;

FIG. 10 is a table showing data relating to contact reordering usinggeographic distances obtained through GPS;

FIG. 11 is an example of the output from contact reordering usinggeographic distances obtained through GPS;

FIG. 12 is a table showing data relating to contact reordering usinggeographic distances obtained through zip codes;

FIG. 13 is an example of the output from contact reordering usinggeographic distances obtained through zip codes;

FIG. 14 is a table showing data relating to contact reordering usinggeographic distances obtained through area codes and exchanges;

FIG. 15A is an example of the output from contact reordering usinggeographic distances obtained through area codes and exchanges;

FIG. 15B is table showing data related to contact reordering usingstatistics related to call frequency information.

FIG. 15C is an example of the output from contact reordering usingstatistics related to call frequency information.

FIG. 16 is a system diagram of the auto-update feature where theupdating is accomplished by updating Internet cookie files; and

FIG. 17 is a system diagram of the auto-update feature where theupdating is accomplished by updating a merchant website server.

DETAILED DESCRIPTION

Certain terminology is used herein for convenience only and is not to betaken as a limitation on the embodiments of the present invention. Inthe drawings, the same reference letters are employed for designatingthe same elements throughout the several figures.

Unified Modeling Language (“UML”) can be used to model and/or describemethods and systems and provide the basis for better understanding theirfunctionality and internal operation as well as describing interfaceswith external components, systems and people using standardizednotation. When used herein, UML diagrams including, but not limited to,use case diagrams, class diagrams and activity diagrams, are meant toserve as an aid in describing the embodiments of the present invention,but do not constrain implementation thereof to any particular hardwareor software embodiments. Unless otherwise noted, the notation used withrespect to the UML diagrams contained herein is consistent with the UML2.0 specification or variants thereof and is understood by those skilledin the art.

In accordance with the multiple embodiments of the present invention, acontact management system distributes contact or calendar records to aplurality of devices. The contact management system ensures that auser's devices have access to the most current appropriate contact orcalendar information. The user, or in some cases the administrator,chooses which records or part(s) of records will be distributed to whichcomponent devices. In one embodiment the contact management system isautomated so that no user interaction is needed. In an alternateembodiment the contact management system distributes records throughuser record selection, such that some or all of the records areexplicitly selected for distribution to individual devices by a user.The contact management system thus ensures that the desired items appearor can be edited by the appropriate devices and/or users. Devicesassociated with the contact management system receive informationremotely in order to maintain a current record. Additionally, in someembodiments, the devices are displayed in an ordered structure where themost desired contacts are ordered first and less desired contacts areordered to appear later or do not appear at all.

Referring to FIG. 1, a contact management system 101 for distributingcontact or calendar records to devices belonging to a single user isshown. In alternate embodiments, the devices to which the calendar orcontact information is distributed belong to a plurality or group ofusers. A contact record is generally any file or other unit of datawhich contains information relating to personal, professional or otherinformation corresponding to a contact, such as name, address and phonenumber. A contact may be an individual, entity, group or organizationwith some connection to the user, such as a colleague, a business or afriend. A calendar record is generally a file or other unit of datawhich contains information relating to a specific event, such as anappointment or a meeting. A calendar record may contain time and dateinformation, information relating to individuals associated with theentry, location information as well as other information relevant to thecalendar entry. Contact and calendar records are generally known bythose skilled in the art, thus further description of them has beenomitted. The contact management system 101 manages and autonomouslydistributes contact or calendar records to the plurality of componentdevices. As shown in FIG. 1, the component devices include a home PC120, a work PC 122, a personal digital assistant (PDA) 124, a cell phone126 and a local PC 128, although any device capable of receiving contactand calendar records could be used. An information management module 100maintains the plurality of contact or calendar records for distributionand determines which of the plurality of devices the record will bedistributed to based on directives. A directive is data or informationthat indicates properties about a contact or calendar record, includingwhich devices the record should be distributed to, the priority of therecord, the privacy features associated with the record, displayfeatures and any other information which indicates properties of arecord. Based on the directives, the information management module 100distributes the records to the component devices through a communicationsystem 102.

The information management module 100 can be implemented via a personalcomputer, an external hard drive, a server or any device capable ofstoring information and transmitting the contact or calendar informationto a device. The information management module 100 processes the datarelated to the plurality of contact or calendar records and prepares thecontact or calendar record for distribution. Such processing includesmanaging data, interpreting the directives, determining which devicesthe records are to be distributed to, determining the method ofdistribution and completing any other pre-distribution processing. Thepre-distribution processing may include buffering of data in preparationfor distribution, virus checking, integrity checking, error checking andany other operations needed to prepare data for transmission. In analternative embodiment some or all of the processing is accomplished bythe communication system 102.

The information management module 100 stores the contact and calendarrecords in an electronic medium. The information management module 100may be implemented using commercially available software such asMicrosoft Outlook® or other similar products. Alternatively, the recordscan be maintained in a proprietary database or any other data structure.The database which stores the records can be a relational database, aflat file database, an object oriented database or any other databasecapable of holding the appropriate information

In one embodiment, the information management module 100 containsinformation related to the format of the component devices and theinformation management module 100 formats the corresponding recordsaccordingly in preparation for distribution. The information managementmodule 100 formats the records prior to sending the records to thecommunications system 102 for distribution. In an alternate embodiment,the files are formatted by the component devices after they arereceived. Alternatively, the information management module 100 and thecomponent devices use the same format, in which case no formatting, orminimal formatting, is necessary.

As discussed, the information management module 100 sends the records tothe communications system 102 for distribution to the component devices.The communications system 102 may be any device or employ any interfaceor other system capable of communicating the contents of a record to therelevant component device. The connection between information managementmodule 100 and the communication system 102 may be any connection usedfor data transfer, such as a Universal Serial Bus (USB) connection, anEthernet connection, a serial connection, a wireless connection such as802.11g or any other connection generally used with a computer. Theinformation management module 100 and the communications system 102 canbe located locally, near the user of the system, or held in an offsitelocation by a third party. In the event that a third party, such as atelecommunications company, provides the communication system 102 at anoffsite location, the Internet can serve as the connection between theinformation management module 100 and the communication system 102. Inan alternate embodiment, the information management module 100 and thecommunications system 102 are a single component such as a computer withthe appropriate communication channels to facilitate communication tothe plurality of component devices and a hard disk drive or otherelectronic storage to store the records.

As shown in FIG. 1, the communications system 102 connects to thecomponent devices through a network 104, a base station 110, a wirelessnetworking device 106, and/or whatever means are appropriate dependingon the capabilities or requirements of the component devices. Thenetwork 104 may be the Internet, a local intranet, a direct connectionor any other network capable of facilitating communications between thecommunications system 102 and the component devices. The base station110 is a device used to communicate with component devices using cellphone technology. The wireless networking device 106 is a wirelessdevice used to connect with devices located within the range of thewireless networking device 106. The communications system 102 may beconnected to the network 104, base station 110, wireless networkingdevice 106 and any other communication device which may be used througha T1 line, a cable modem or a DSL line, a modem, a computer connectionsuch as USB, wireless connections such as 802.11n or Blue Tooth or anyother connection capable of providing the appropriate bandwidth fordistribution of the contact and calendar records.

In one embodiment, the wireless networking device 106 is a wirelessrouter using IEEE 802.11n or similar standard and the wirelessnetworking device 108 is a wireless networking card using the same orcompatible standard. In an alternate embodiment, the wireless networkingdevices 106 and 108 are connected through a standardized communicationtechnology such as Blue Tooth. Information management module 100 andcommunication system 102 maintain records of information related to thecomponent devices to facilitate communication. This informationincludes, but is not limited to, a device's network address, IP address,MAC address, phone number or other identifying information.

In one embodiment the contact management system 101 monitors informationoriginating from outside the contact management system 101 to ensurethat the user's own personal information is not altered or deleted.Alternatively, there may be information distributed to the devices thatan administrator of the system would like to delete upon a user leavingthe system. The contact management system 101 maintains records ofdistribution information to facilitate a deletion process which leavesprivate data untouched while completely deleting other information. Inone embodiment, the system maintains a history record of informationwhich has been distributed. The history record can be stored on theinformation management system 100 or any other device capable of holdingthis information. The history record maintains information about whichfields and records have been sent or received and which device sent orreceived such information. When a user or device is deleted from thesystem, the information management system 100, in conjunction with thecommunications system 102, deletes the information from the user'sdevice which has been added to that device by the information managementsystem 101 by comparing the device's information to the history record.In an alternate embodiment contact and calendar records and fields areflagged when received by the user device. A flag is a Boolean variableor other indicator which determines whether that contact or calendarrecord originated from the user locally or from the contact managementsystem 101. When the contact management system 101 deletes a user ordevice's information it deletes the flagged records, thereby onlydeleting information originated from the system.

FIG. 3A is a use case diagram of the information management module 100.Component devices 202 include component devices a user of the contactmanagement system 101 could use as described with reference to FIG. 1,including the home PC 120, work PC 122, PDA 124, cell phone 126, localPC 128 or any other device capable of receiving contact or calendarinformation. The information management module 100 receives new contentat the receive component content use case 210 and the receive localinput use case 204. The received content can be calendar and contactrecord information or any other information. The receive componentcontent use case 210 receives content from one or more of the componentdevices 202. The store content use case 212 stores content received bythe receive component content use case 210 in the information managementmodule 100. The receive local input use case 204 receives input from alocal user 214 and/or any other entity 218. The local user 214 is a userwho inputs information directly to the information management module 100and submits requests or information through an input device. Theentity/system 218 is any entity or system which is not a componentdevice that submits a request for information to the informationmanagement module 100, such as a subsystem managing a user's contacts.The information received by the receive local input use case 204 isstored using the store content use case 212. A request for content usecase 220 allows a component device 202 to request an update or someother information from the information management module 100. The sendcontent use case 206 sends the updated content or requested informationto component devices. The send content use case 206 includes the checkdirective use case 208. The check directives use case 208 checks thedirectives of the information being sent by the send content use case206 prior to the sending of the information to ensure that theappropriate information is distributed to the one or more componentdevices 202. The check for update use case 216 checks the informationmanagement module for updated information to be sent to the componentdevices 202 through the send content use case 206 and the checkdirectives use case 208. The check for update use case 216 is initiatedby the information management module 100 either automatically through atimer operation or some other similar function or manually when thelocal user 214 or the entity 218 or a component device 202 or a userusing a component device 202 makes such a request. The above discussedcommunications between the component device 202 and the informationmanagement module 100 are facilitated either though communication system102 (not shown) or alternatively a direct connection between theinformation management module 100 and the component device 202.

FIG. 3B is a use case diagram of one of the component devices 202. Thecomponent device 202 receives input from a user 290. The user 290 is anyindividual, entity or group using the component device. The view datause case 230 displays data which has been stored on the component deviceat the request of user 290. The basic functions use case 222 allows theuser 290 to add, edit or delete a contact or calendar record from thecomponent device and sends the added, edited or deleted contact orcalendar record to the information management module 100. The store oncomponent use case 228 updates the component device 202 by adding,editing or deleting the record or records affected by the basicfunctions use case 222. The request content use case 224 sends a requestfor content to the information management module 100. The request can befor every updated record available on the information management module100 or alternatively the request can be for one or more specific item(s)that user 290 requests. The receive content use case 226 receives anycontent that the information management module 100 sends to thecomponent device 202 (e.g. updated contact or calendar records). Thecontent received can be the information requested by the componentdevice 202 at the request content use case 224 or any data that theinformation management module 100 sends to the component device 202. Thecontent received by the receive content use case 226 is stored on thecomponent device at the store component use case 228. The communicationbetween the component device 202 and the information management module100 can be facilitated using the communication system 102 oralternatively can be a direct connection between the informationmanagement module 100 and the component device 202.

FIG. 4 is an activity diagram corresponding to the contact managementsystem 101. FIG. 4 is an example of the contact management system in a“push” environment, in that the information management module 100 sendsinformation to the component devices whenever a contact record isupdated. The information management module 100 receives an update atreceive update step 300. The information management module 100 mayreceive an update from local input into the information managementmodule 100 or from any of the component devices. An update refers to arecord which has been newly added, edited or deleted. After an updatehas been received, the information management module 100 determines if adirective exists for the updated record at the directive test step 302.If, at the directive test step 302, the information management module100 determines that no directive exists, the information managementmodule applies a default directive at the apply default directive step304. If, at the directive test step 302, the information managementmodule 100 determines that a directive exists or after the apply defaultdirective step 304 has applied a default directive, the informationmanagement module 100 sends the record to the communications system,which is received at the receive record step 330. The communicationsystem 102, in conjunction with the information management module 100,sends the record to the component devices corresponding to thedirectives at the send updated contact step 306. The record is receivedby the component device at the message received step 308. At thecomponent device, the record can either be accepted or rejected at theaccept test step 310. The record can be accepted or rejected at thecomponent device either by explicit user input or by default settingspredetermined by the user. If the record is accepted, the componentdevice updates, creates or deletes the record locally at the updatelocally step 312, followed by the component device sending a messageback to the information management module 100 at the send response step314. If the record is rejected, the component device sends a responseback to the information management module at the send response step 314.The messages sent from the component device at the send response step314 are received by the communication system 102 and sent to theinformation management module 100 at the send response step 316. Themessage is received, interpreted and stored by the informationmanagement system 100 at the update server step 318. This entire processis repeated for each individual updated record. Although FIG. 4 is shownwith respect to a single received is processed individually, thoseskilled in the art will understand that more than one record may beprocessed at the same time.

FIG. 5 illustrates an example of the contact management system 101 in a“pull” environment in that the component devices request updated recordsfrom the information management module 100. A user at a component devicesends a request to receive updated records at the send update requeststep 340. The component device sends the request to the communicationsystem 102, which receives the request and sends the request to theinformation management system 100 at the send signal step 342. Themessage is received by the information management system 100 at theupdate available test step 344, which determines if any updated recordsare available to send to the component device. If no updates areavailable, the information management system 100 sends a responseindicating the situation to the component device through thecommunication system 102 at the send signal step 346. This message isreceived at the receive signal step 348, which ends the process. If oneor more records are available to be sent, the contact management system101 begins an iterative process of sending the available updated contactrecords to the component device at the directive test step 350. Allsteps beginning at the check directive step 350 are repeated for eachupdated record. The directive test step 350 checks if the current recordhas a directive. If no directive exists, the information managementsystem 100 creates a default directive at the create default directivestep 352 and sends the record and the directive to the communicationsystem 102, which is received at the receive record step 370. If adirective already exists, the information management system 100 sendsthe record and the directive to the communication system 102, which isreceived at the receive record step 370. The communication system 102,sends the record, based on the directive, to the proper components atthe send record step 354. The component device receives the record atthe receive record step 356. The component device can either accept orreject the received record at accept test step 358. This acceptance orrejection is determined either by explicit user entry or by defaultscreated by the user. If the record is rejected, the component devicesends a response indicating the rejection back to the informationmanagement system 100 through send response step 362 and send signalstep 364. If the record is accepted, the component device updates,creates or deletes the record locally at the update locally step 360.The component device then sends a response indicating the acceptanceback to the information management system 100 through send response step362 and send signal step 364. A response is received by the informationmanagement module 100 and stored at the update server step 366. The moreresults test step 368 determines if more updated records exist to besent to the component. If more results exist, the contact managementsystem 101 returns to the directives test step 350 and continues theupdate. If no more results exist, the process is completed. Although inFIG. 5 the records are transmitted in one process, those skilled in theart will recognize that the records could be sent in groups orindividually.

A contact or calendar record contains a plurality of fields. A field iscomposed of a unit of data corresponding to the associated contact orcalendar record. Examples of fields include name, home address, homephone number, work addresses, work phone numbers, personal email,business email, contact identification number and any other informationrelevant to a contact or calendar entry. New fields may be created by auser or an administrator of the contact management system 101.

Directives are pieces of information which direct the contact record.For example, directives may contain information of which componentdevices receive the associated contact record. Directives also containinformation on permissions and authorizations pertaining to a user'sability to view, add, edit or delete an associated contact record orfield within that contact record. Directives can also containinformation on how a contact record or associated field is ordered anddisplayed on the component device. Directives are either part of arecord or a separate file or piece of data associated with a record.

In one embodiment, directives are files that are associated withindividual records or fields and hold necessary distribution andauthorization data. In this embodiment, the information managementmodule 100 reads a directive file when distributing the associaterecord. Based on this directive file, the information management module100 determines which component device the corresponding record or fieldwithin that record should be distributed to, what authorizations orpermissions exist for that record and any other ancillary informationconcerning ordering of the record or display of the record. In analternate embodiment, a directive is data which is part of the recorditself. The record holds data associated with each field. Theinformation management module 100 reads the record to determine thedirective information prior to distribution.

One type of directive is a list directive. A list directive is used todetermine to which component device a record or field within that recordshould be distributed. A list directive contains a list of componentdevices that are associated with a record. FIG. 6 illustrates an exampleof one contact record's fields, data and the field's list directives. Inthis example each field has a list directive. The contact field headingcolumn 712 contains the title of each contact field. The contact fielddata column 714 contains the data associated with each contact field.The directive field data column 716 contains the list directive for thefield in that row. In the example of FIG. 6, the fields are Contact ID,Name, Home Address, Home Phone #, Work Address, Work Phone #, PersonalEmail, Business Email, Cell Phone # and Notes. Each of these fieldheadings has data associated with the field; for example the datacontained in the field “name” is “Jon Doe.” The communication system 102performs the appropriate distribution of the record and the fieldswithin that record based on the list directive. Each component devicelisted in the “directive field data” column will receive the fieldsassociated with the list directive. As shown in FIG. 6, the contact IDremains on the server and is not distributed to any other componentdevices. The contact name is sent to the users cell phone, home PC, workPC and PDA. From these directives, the communication system 102determines where to send each individual field based on the listdirectives.

FIGS. 7A and 7B provide examples of group directives that determine towhich component devices a record or field should be distributed bygrouping component devices and assigning the directive to fields orrecords. If a group directive is assigned to a field or record, thatfield or record will be distributed to the component devices listed inthe group directive. FIG. 7B illustrates an example of group directives.The group ID column 708 contains the names of the groups. The groupdirective information column 710 contains the list component devicesassociated with the group ID. FIG. 7A contains a single contact recordas described in the table in FIG. 6, except the directive field datacolumn 706 contains a group ID rather than a list of component devices.For example, the group with the group ID of “personal” is associatedwith the server, cell phone and home PC component devices. The fields of“home address” and “home phone #” contain the directive information of“personal.” This means that the data in the home address and home phone# fields are to be distributed to the server, the cell phone and thehome PC component devices. Groups within the group directives are nottypically exclusive, as a component device may be in several or all ofthe groups. In one embodiment, the information management module 100maintains group directives in a table or similar data structure with thegroup names and the corresponding component devices associated withthose groups. The contact management system 101 distributes the recordsor fields associated with the group directive by analyzing the table orother data structure containing the group directive information anddistributing the record accordingly.

FIGS. 8A, 8B and 8C provide examples of geographic directives.Additionally, the example of FIGS. 8A, 8B and 8C show the interactionwhen there are two types of directives applying to the same record orfield. Geographic directives are directives used to control the displayorder of contact records on a component device based on the geographicproximity of a contact. Alternatively, geographic directives controlwhether a contact record will be displayed at all. For example,geographic directives allow a user of a component device to displaytheir Philadelphia contact records or fields more prominently when usinga component device in the Philadelphia area and allows the user todisplay their non-Philadelphia contact records or fields lessprominently or not at all when using a component device in thePhiladelphia area. In the example illustrated by FIG. 8A and FIG. 8Cshow geographic directive information. For each field, the directivefield data 2 column 724 indicates the associated geographic directive tothe field and the directive field data 1 column 722 indicates theassociated group directive to the field. FIG. 8C shows the group ID'sand the information associated with the group ID in the group ID column730 and the information associated with that group ID in the groupdirective information column 732. If the user of a component devicecontaining the record shown in FIG. 8A were in Philadelphia thecomponent device would display the fields whose directive indicatedPhiladelphia more prominently than the other fields. Additionally, thedirectives with the group ID “everywhere” are shown independent oflocation. Consequently, the fields corresponding to the name, the homeaddress, the home phone number, the personal email, the business emailand notes would be shown more prominently to a user of a componentdevice when located in Philadelphia, while the other fields will bedisplayed less prominently or not at all. If the user on the componentdevice were in San Diego, the fields corresponding to alternate addressand alternate phone # would be displayed more prominently along with thefields corresponding to the everywhere geographic directive.

FIGS. 8A, 8B and 8C also illustrate the use of two types of directivessimultaneously. In addition to the use of geographic directives, theexample in FIGS. 8A, 8B and 8C show the use of group directives as well.A user with the contact record shown in FIG. 8A and the directiveinformation shown in FIG. 8B and FIG. 8C is able to view the contact'shome phone number on all of the user's personal devices and the homephone number of the contact record is displayed more prominently when inthe user is located in the Philadelphia area. In addition to utilizingthe geographic directive information from FIG. 8C, the contactmanagement system 101 utilizes the group directive information from FIG.8B to determine what information is distributed. In this example, theappropriate information is distributed to the appropriate componentdevices by using the group directives in FIG. 8B and the distributedinformation is displayed when appropriate based on the geographicdirectives illustrated in FIG. 8C.

FIGS. 9A, 9B and 9C illustrate multiple directives in which one of thedirectives is based upon time of day information and another directiveis based on group information. The interaction between these twodirectives is similar to the interaction between group directives andgeographic directives described above. Time of day directives controlthe prevalence of a record or field based on the time of day. In oneembodiment records or fields are displayed at a user determined time ofday; in an alternate embodiment the time of day directives effect theordering of the fields and records, while still displaying allinformation. In the example illustrated in FIGS. 9A, 9B and 9C, the timeof day determines which contact fields can be viewed. FIG. 9Cillustrates the time of day directive information. The directive fielddata 2 column 740 lists, for each field, the associated time of daydirective. The group ID column 746 and the group directive informationcolumn 748 show the various time of day directives and theircorresponding time restraints. For example, during work hours (8AM-6PM)the work phone number and address are displayed and during non-workhours (all other times) the home phone number and address are displayed.Alternatively, the time of day directives could apply to the entirerecord, thereby making the individual records, rather than fields bedisplayed. In an alternative embodiment similar directives controldisplay of records based on availability of individuals, rather than thetime of day. A contact which is known to be unavailable due to a meetingor vacation is not visible or alternatively displayed less prominently.The determination of unavailability can be done through explicit userinput or can be done through a comparison of the contact record and acalendar record associated with that contact.

Directives are implemented by a user or administrator setting up eachrecord and field individually by specifying categories of directives(list, group, geographical, time of day, etc.) and applying thesedirectives to fields or records. In one embodiment a pull down menu isutilized to facilitate assignment of directives or other orderinginformation. In alternate embodiments assignment is accomplished throughtext entry or any other data entry method. The directive groups can becustomized to fit a user's preference or are based on defaultsimplemented by a user or administrator. Default directives are assignedeither when a record is created or alternatively when a record istransmitted. The default directives are selected by the user. Forexample, a user may implement default settings where phone numbers aresent to their cell phone, while phone numbers and addresses are sent totheir PDA. Default directives are available for all types of directives.A user using time of day directives may select that business phonenumbers always be displayed more prominently during work hours, whilesimultaneously setting up geographic default directives to specify thatcontacts with addresses in Philadelphia are always displayed andcontacts with addresses in San Diego are displayed when in San Diego,within a predefined distance of San Diego, perhaps within the state ofCalifornia of within the Pacific time zone.

In one embodiment, a contact ordering mechanism is implemented throughthe use of directives. This mechanism can be applied to a variety ofdevices and systems outside the context of the contact management system101 described herein. As such, the contact ordering mechanism can beapplied to cell phones, PDA's, computers and other component devicescontaining contact record information.

In one embodiment the contact ordering mechanism enables a user to viewcontact records based upon geographic proximity to the user's currentlocation. The system determines the present location of the user'sdevice and the present locations of various contacts and reorders thecontacts so that more geographically proximate contacts are listedbefore less geographically proximate contacts. Calculation of the user'sposition and the position of the relevant contacts may be accomplishedusing a global positioning satellite (GPS) device, zip code, phonenumber, cell phone triangulation or any number of different positioningschemes or combinations thereof. Furthermore, since different types ofinformation may be available for different contacts in the user'scomponent device, the distance calculations may be accomplished using adifferent positioning methodology for different contacts. For example,GPS location and cell phone triangulation are accomplished in real time,while zip code location and phone number location are static. A usercould implement the contact display mechanism to use GPS and cell phonetriangulation if available and use zip code and phone number location asan alternative when the real time location techniques are unavailable.Additionally, the contact ordering mechanism need not necessarilyreorder the entire set of contacts based solely on geographic proximity.For example, the contacts or records may be ordered alphabetically andthen reordered within each letter or grouping of letters by geographicproximity.

Depending on the type or source of position data (e.g., GPS, zip code,area code, etc.), the geographic contact ordering mechanism determinesthe distance between the user's position and the position of one or moreof the relevant contacts. The distance calculation made be made usingany positioning calculation or algorithm that is generally known in theart to determine distance between two points. FIG. 10 illustrates datawhen GPS has been used to determine the location of the user and theuser's contacts. In this scenario, the geographic contact orderingmechanism requires a user to have a GPS enabled device and the abilityto receive GPS location of various contacts. In the example, the GPS onthe user's device has calculated the device location at latitude 40.39Nand at longitude 75.25W. The user device then determines the latitudeand longitude of each contact by locating the GPS signal of eachcontact's device. Then, using formulas well known in the art, the userdevice determines the distance of the contacts from the user device. Thecontact latitude column 1006, the contact longitude column 1008 and thedistance from contact to user column 1010 illustrate the informationdetermined by the user device about each contact. Once this process iscomplete, the device orders the contacts most geographically proximatecontacts listed before less geographically proximate contacts. FIG. 11illustrates the output from the data in FIG. 10 as it might appear on acell phone 1100. Screen display 1102 shows the contacts as ordered basedon GPS.

FIG. 12 illustrates data related to a geographic contact orderingmechanism where zip code is used rather than GPS to determine thedistances. The process is similar to the process described above but thealgorithm used to determine distance is based on the distance betweenzip codes rather than the distance being determined based on GPS. Thecontact zip code column 1202 and distance from zip code 1204 illustratethe distances used in determining ordering. The user's location can bedetermined based on the user's home zip code, their GPS location, a zipcode inputted by the user or any other geographically distinct value.FIG. 13 illustrates the output from the data in FIG. 12 as it mightappear on a cell phone 1300. Screen display 1302 shows the contacts asordered based on zip code. FIG. 14 illustrates data related to ageographic contact ordering mechanism where a user and contact's areacode and exchange are used to determine the distances. This process issimilar to the above described process. The contact phone number column1402 and the distance from user column 1404 illustrate the distancesdetermined using area code and exchange. FIG. 14B illustrates the outputfrom the data in FIG. 14A as it might appear on cell phone 1500. Screendisplay 1502 shows the contacts as ordered based on area code andexchange. In any of the above described geographic contact orderingmechanisms any combination of the distance methods (GPS, area code, zipcode or some other distance method) can be used in determining ordereddisplay.

In another embodiment of the contact ordering mechanism, users also havethe ability to view records which have been reordered based onstatistics. The statistical information is kept by a component deviceand can include call frequency information, time stamp information, calllength information or other information a user selects to maintainstatistic on. By utilizing this type of information, a user is able tomore easily retrieve desired contact information.

In one embodiment of statistical reordering, contacts are reordered bycall frequency information. Call frequency information refers toinformation related to communications with a contact and includes bothincoming communications and outgoing communications. The contact recordsare ordered so that contacts which are communicated with more frequentlyhave their contact record displayed before contacts which arecommunicated less frequently. Records are maintained concerning how manycommunications each contact has with the user's component device. In oneembodiment the contact reordering scheme is implemented by maintaining anumber indicating the amount of communications with each contact. Eachtime a communication occurs between a contact and the user's componentdevice the number associated with that contact is incremented. Thecontact reordering system then orders the contacts based on the number,with the contact records with higher numbers listed before the contactswith lower numbers. In one embodiment, the contact records are orderedby call frequency information pertaining to incoming communications oroutgoing communications. In this embodiment each contact recordmaintains a number for incoming communications and outgoingcommunications and increments each when appropriate.

FIG. 15A illustrates an example of call statistic information whereincall statistic information related to call frequency information isshown. In this example, contacts which would be shown when the “JKL”button on a cell phone is pressed. FIG. 15B illustrates two cell phonescreen displays resulting from the contact list illustrated in FIG. 15A.The cell phone screen display 502 shows contacts displayedalphabetically after pressing the “JKL” key on the keypad 506. The cellphone screen display 504 shows the same contact information, however itis sorted by call frequency information as illustrated in the table inFIG. 15A.

In one embodiment contacts are reordered by call length informationwherein contact records with longer aggregate call lengths are orderedbefore contact records with shorter aggregate call length. In oneembodiment, information is maintained by the user device concerning thelength of calls as well as the time the calls were begun and whether thecall was incoming or outgoing. The contact management system 101 thenreorders the contacts based on this statistical information. In oneembodiment contacts are reordered based on total call length over thelife of the device. The contacts or phone numbers which have longercombined totals for call length are listed prior to contacts or phonenumbers with shorter combined totals for call length. In an alternativeembodiment the contacts are ordered so that the call length is monitoredbased on a user defined time and date. In another embodiment thecontacts are sorted based on whether they are incoming or outgoing. Thisembodiment only includes call length times from the appropriate type ofcall. Further embodiments have combinations of the above definedreordering schemes.

Referring to FIG. 2, in an alternate embodiment, a contact managementsystem 600 maintains and distributes multiple users' contact andcalendar records. The contact management system 600 of FIG. 2 is shownas having multiple users and is similar to the contact management system101 described with respect to FIG. 1. It will be readily understood thatthe contact management system 600 could have any number of users. Thecontact management system 600 includes the information management module100, the communication device 102, the base station 110, the wirelessnetworking device 106 and the network 104, all of which have featuresand operate in the same manner as described in reference to the contactmanagement system 100 of FIG. 1. Thus, the contact management system 600is able to manage distribution of contact and calendar records formultiple different users by communicating with component devicesbelonging to multiple different users. As previously discussed,directives include information regarding authorizations or permissionsas well as information pertaining to which device the records aredistributed to, to ensure appropriate distribution of records. In someinstances certain users are prevented from accessing or editing contactsto ensure that appropriate users' and devices receive information. InFIG. 2, a first user uses the cell phone 141 a, the home PC 143 a, thework PC 145 a and the PDA 147 a, while a second user uses cell phone 141b, home PC 143 b, and work PC 145 b, and a third user uses cell phone141 c and PDA 147 c. In an alternate embodiment their may be more orfewer users and corresponding devices associated with each user.

The contact management system distributes contact information towebsites on an autonomous basis. In one embodiment the contactmanagement system distributes records which complete web forms such thateach field in the web form corresponds to fields within a record. In analternate embodiment the contact management system distributes recordsto websites whenever a relevant updated record is available fordistribution.

In one embodiment an auto-fill mechanism for websites based on storedcontact records is supported. This mechanism is applicable to merchantwebsites; however any website where contact related information isrequested utilizes this feature. This mechanism automatically fillscontact fields in websites forms which typically need user input tocomplete. The mechanism correlates the fields of a contact record in thecontact management system 101 with the fields in a website form. In oneembodiment an algorithm is used which detects which of the fields in thewebsite form need input from a record which is stored on informationmanagement module 100 in the contact management system 101. This isaccomplished through comparisons of the label in the website form to alist of common labels associated with the record in the contactmanagement system. Through this comparison, the contact managementsystem 101 sends information to the website form to promulgate thefields in the website form.

In one embodiment, initiation of the auto-fill mechanism is accomplishedthrough either drag and drop initiation or file upload initiation. Whenusing drag and drop initiation, a user selects the contact record from adatabase program holding the user's contacts by clicking on it. The usercan then drag the representation of the contact record directly to thewebsite form. Upon dropping the contact representation, the auto-fillmechanism automatically correlates the labels of the website form to theavailable fields of the contact management system and subsequentlypromulgates the contact data to the fields within the website form. Analternate embodiment uses file upload initiation which is initiatedthrough a menu selection associate with the website. Once a menu item isselected, the web browser opens a file selection window for selectingthe contact record corresponding to the information the user wantsfilled into the website form.

In one embodiment an auto-update mechanism for populating merchantwebsites and keeping them updated with current contact information issupported. This mechanism works in conjunction with the contactmanagement system 101 or is utilized as a stand alone feature. Thefeature updates merchant websites with the most current updated contactinformation by distributing contacts on a local computer or informationmanagement module 100 to the merchant website whenever a contact isupdated.

In one embodiment of the auto-update mechanism the system updates filesknown as Internet cookies, which are stored locally on the user's PC, toupdate the contact information. Internet cookies are files which containinformation specific to a particular website. In one scenario, a userlogs into a website and the users' personalized information is stored inan Internet cookie on the local machine. When the user logs onto thiswebsite, the web browser reads the Internet cookie file and utilizes itto read the personalized information. The personalized information mayinclude contact information, calendar information, credit cardinformation, web site personalization information or any otherinformation the web page administrator includes. FIG. 16 illustrates anembodiment where Internet cookies are updated using the auto-updatemechanism in conjunction with the contact management system. Theinformation management module 100 contains the contact record to bedistributed to the website and the communications system 102 updates theInternet cookie file 402. The Internet cookie file 402 is read andinterpreted by an Internet browser which connects to the network 104.The network 104 communicates with the merchant website server 404 inorder to allow the merchant website to use this data. If an Internetcookie contains information relating to contact information or billinginformation, that information is updated in the Internet cookie file 402when the local computer or the information management module 100receives an update. This ensures that when a user returns to thatwebsite the contact information and billing information is updatedwithout any user input. The directives described above ensure that theappropriate websites and contacts stored in Internet cookies areupdated.

In another embodiment of the auto-update mechanism, the website storescontact information on a server, rather than in an Internet cookie. FIG.17 illustrates this embodiment. The information management module 100sends the desired records to the communications system 102 whichdistributes the updated contact information to the merchant websiteserver 404 via the network 104. The website server 404, in thisembodiment, is acting like a component in FIG. 1. It has the ability toreceive the contact record and update itself.

The embodiments of the present invention may be implemented with anycombination of hardware and software. If implemented as acomputer-implemented apparatus, the present invention is implementedusing means for performing all of the steps and functions describedabove.

The embodiments of the present invention can be included in an articleof manufacture (e.g., one or more computer program products) having, forinstance, computer useable media. The media has embodied therein, forinstance, computer readable program code means for providing andfacilitating the mechanisms of the present invention. The article ofmanufacture can be included as part of a computer system or soldseparately.

While specific embodiments have been described in detail in theforegoing detailed description and illustrated in the accompanyingdrawings, it will be appreciated by those skilled in the art thatvarious modifications and alternatives to those details could bedeveloped in light of the overall teachings of the disclosure and thebroad inventive concepts thereof. It is understood, therefore, that thescope of the present invention is not limited to the particular examplesand implementations disclosed herein, but is intended to covermodifications within the spirit and scope thereof as defined by theappended claims and any and all equivalents thereof.

1.-20. (canceled)
 21. A method of displaying contact information on amobile device, the method comprising: storing a plurality of contactrecords on a mobile device, wherein each of the plurality of contactrecords is associated with a contact and includes a name associated withthe contact and contact information associated with the contact, whereinthe plurality of the contact records comprises a first subset of contactrecords, and the contact information of each contact record included inthe first subset of contact records includes time of day informationindicating when at least a portion of a respective contact record is tobe displayed; determining a current time of day; comparing the currenttime of day with the time of day information associated with the firstsubset of contact records; identifying a second subset of the contactrecords that are to be always displayed independent of the current timeof day; and displaying the contact records on a display, such that thesecond subset of the contact records is displayed independent of thecurrent time of day and the first subset of the contact records aredisplayed based on a comparison between the current time of day and thetime of day information associated with the first subset of contactrecords.
 22. The method as in claim 21, wherein time of day informationassociated with a first field of a first contact record in the firstsubset of contact records specifies a first time range during whichdisplay of the first field is to occur and displaying the contactrecords on the display comprises: displaying the first field of thefirst contact record when the current time of day is within the firsttime range.
 23. The method as in claim 22, wherein displaying thecontact records on the display further comprises: displaying the firstfield of the first contact record and the second subset of the contactrecords while the current time of day remains within the first timerange.
 24. The method as in claim 22, wherein time of day informationassociated with a second field of the first contact record specifies asecond time range during which display of the second field is to occurand displaying the contact records on the display comprises: displayingthe second field of the first contact record when the current time ofday is within the second time range, wherein the second time range isdifferent than the first time range.
 25. The method as in claim 24,wherein displaying the contact records on the display comprises:displaying the second field of the first contact record and the secondsubset of the contact records while the current time of day remainswithin the second time range.
 26. The method as in claim 21, whereindisplaying the contact records on the display comprises: determiningunavailability of a person represented by a first contact record in thefirst subset of contact records; and displaying at least a portion ofthe first contact record less prominently due to the unavailability ofthe person represented by the first contact record, wherein the firstcontact record is associated with time of day information indicatingdisplay of at least the portion of the first contact record to occurduring the current time of day
 27. The method as in claim 26, whereindetermining the unavailability of the person represented by the firstcontact record comprises: comparing the first contact record and acalendar record indicating at least one event during which the personrepresented by the first contact record is unavailable
 28. The method asin claim 21, wherein storing the plurality of contact records on themobile device comprises: storing a first contact record in first subsetof contact records, the first contact record including first time of dayinformation associated with a first field of the first contact recordand second time of day information associated with a second field of thefirst contact record.
 29. A contact information display system fordisplaying information on a mobile device, the system comprising: astorage device capable of storing a plurality of contact records,wherein each of the plurality of contact records is associated with acontact and includes a name associated with the contact and contactinformation associated with the contact, wherein the plurality of thecontact records comprises a first subset of contact records, and thecontact information of each contact record included in the first subsetof contact records includes time of day information indicating when atleast a portion of a respective contact record is to be displayed; aninformation management module configured to: determine a current time ofday; compare the current time of day with the time of day informationassociated with the first subset of records; and identifying a secondsubset of the contact records that are to be always displayedindependent of the current time of day; and a display module configuredto display the contact records such that the second subset of thecontact records is displayed independent of the current time of day andthe first subset of the contact records are displayed based on acomparison between the current time of day and the time of dayinformation associated with the first subset of contact records.
 30. Thecontact information display system as in claim 29, wherein time of dayinformation associated with a first field of a first contact record inthe first subset of contact records specifies a first time range duringwhich display of the first field is to occur and the display module isconfigured to display the first field of the first contact record whenthe current time of day is within the first time range.
 31. The contactinformation display system as in claim 30, wherein the display module isconfigured to display the first field of the first contact record andthe second subset of the contact records while the current time of dayremains within the first time range.
 32. The contact information displaysystem as in claim 30, wherein time of day information associated with asecond field of the first contact record specifies a second time rangeduring which display of the second field is to occur and the displaymodule is configured to display the second field of the first contactrecord when the current time of day is within the second time range, thesecond time range being different than the first time range.
 33. Thecontact information display system as in claim 32, wherein the displaymodule is configured to display the second field of the first contactrecord and the second subset of the contact records while the currenttime of day remains within the second time range.
 34. The contactinformation display system as in claim 29, wherein the informationmanagement module is configured to determine unavailability of a personrepresented by a first contact record in the first subset of contactrecords; and wherein the display module is configured to display atleast a portion of the first contact record less prominently due to theunavailability of the person represented by the first contact record,the first contact record associated with time of day informationindicating display of at least the portion of the first contact recordto occur during the current time of day.
 35. The contact informationdisplay system as in claim 34, wherein the information management moduleis configured to determine the unavailability of the person by comparingthe first contact record and a calendar record indicating at least oneevent during which the person represented by the first contact record isunavailable
 36. The contact information display system as in claim 29,wherein the storage device is configured to store a first contact recordin first subset of contact records, the first contact record includingfirst time of day information associated with a first field of the firstcontact record and second time of day information associated with asecond field of the first contact record.
 37. A non-transitorycomputer-readable medium having instructions stored thereon, theinstructions comprising: instructions for storing a plurality of contactrecords on a mobile device, wherein each of the plurality of contactrecords is associated with a contact and includes a name associated withthe contact and contact information associated with the contact, whereinthe plurality of the contact records comprises a first subset of contactrecords, and the contact information of each contact record included inthe first subset of contact records includes time of day informationindicating when at least a portion of a respective contact record is tobe displayed; instructions for determining a current time of day;instructions for comparing the current time of day with the time of dayinformation associated with the first subset of contact records;instructions for identifying a second subset of the contact records thatare to be always displayed independent of the current time of day; andinstructions for displaying the contact records on a display, such thatthe second subset of the contact records is displayed independent of thecurrent time of day and the first subset of the contact records aredisplayed based on a comparison between the current time of day and thetime of day information associated with the first subset of contactrecords.
 38. The non-transitory computer-readable medium as in claim 37,wherein time of day information associated with a first field of a firstcontact record in the first subset of contact records specifies a firsttime range during which display of the first field is to occur, whereinthe instructions for displaying the contact records on the displaycomprise: instructions for displaying the first field of the firstcontact record when the current time of day is within the first timerange.
 39. The non-transitory computer-readable medium as in claim 38,wherein the instructions for displaying the contact records on thedisplay further comprise: instructions for displaying the first field ofthe first contact record and the second subset of the contact recordswhile the current time of day remains within the first time range. 40.The non-transitory computer-readable medium as in claim 38, wherein timeof day information associated with a second field of the first contactrecord specifies a second time range during which display of the secondfield is to occur, wherein the instructions for displaying the contactrecords on the display comprise: instructions for displaying the secondfield of the first contact record when the current time of day is withinthe second time range, wherein the second time range is different thanthe first time range.
 41. The non-transitory computer-readable medium asin claim 40, wherein the instructions for displaying the contact recordson the display comprise: instructions for displaying the second field ofthe first contact record and the second subset of the contact recordswhile the current time of day remains within the second time range.